C TEST
| Sonata Software | |
1. Point out error, if any, in the following
program
main()
{
int
i=1;
switch(i)
{
case
1:
printf("\nRadioactive cats have 18
half-lives");
break;
case
1*2+4:
printf("\nBottle for rent -inquire
within");
break;
}
}
Ans. No error. Constant expression like 1*2+4 are
acceptable in cases of a switch.
2. Point out the error, if
any, in the following
program
main()
{
int
a=10,b;
a>= 5 ? b=100 :
b=200;
printf("\n%d",b);
}
Ans. lvalue required in function main(). The second
assignment should be written in parenthesis as
follows:
a>= 5 ? b=100 : (b=200);
3. In the following code, in which
order the functions would be
called?
a= f1(23,14)*f2(12/4)+f3();
a) f1,
f2,
f3
b) f3, f2, f1
c) The order may vary from compiler to
compiler
d) None of the above
4. What would be the output of the
following
program?
main()
{
int
i=4;
switch(i)
{
default:
printf("\n A mouse is an elephant built by the
Japanese");
case
1:
printf(" Breeding rabbits is a hair raising
experience");
break;
case
2:
printf("\n Friction is a
drag");
break;
case
3:
printf("\n If practice make perfect, then nobody's
perfect");
}
}
a) A mouse is an elephant
built by the
Japanese
b) Breeding rabbits is a hare raising
experience
c) All of the
above
d) None of the above
5. What is the output of the following
program?
#define SQR(x)
(x*x)
main()
{
int
a,b=3;
a=
SQR(b+2);
printf("%d",a);
}
a) 25 b)
11
c)
error
d) garbage value
6. In which line of the following, an error would be
reported?
1. #define CIRCUM(R)
(3.14*R*R);
2.
main()
3.
{
4. float
r=1.0,c;
5. c=
CIRCUM(r);
6.
printf("\n%f",c);
7.
if(CIRCUM(r))==6.28)
8.
printf("\nGobbledygook");
9. }
a)
line
1
b) line
5
c) line 6
d) line 7
7. What is the type of the
variable b in the following
declaration?
#define FLOATPTR
float*
FLOATPTR a,b;
a)
float
b) float
pointer
c)
int
d) int pointer
8. In the following
code;
#include<stdio.h>
main()
{
FILE
*fp;
fp=
fopen("trial","r");
}
fp points
to:
a) The first character in the
file.
b) A structure which contains a "char" pointer which points to
the first character in the
file.
c) The name of
the
file.
d) None of the above.
9. We should not read after a write to a file
without an intervening call to fflush(), fseek() or rewind() <
TRUE/FALSE>
Ans. True
10. If the
program (myprog) is run from the command line as myprog 1 2 3
, What would be the
output?
main(int argc, char
*argv[])
{
int
i;
for(i=0;i<argc;i++)
printf("%s",argv[i]);
}
a) 1 2 3
b) C:\MYPROG.EXE 1 2
3
c)
MYP
d) None of the above
11. If the following program (myprog) is run from
the command line as myprog 1 2 3, What would be the
output?
main(int argc, char
*argv[])
{
int
i,j=0;
for(i=0;i<argc;i++)
j=j+
atoi(argv[i]);
printf("%d",j);
}
a) 1 2 3
b)
6
c)
error
d) "123"
12. If the following program (myprog) is run from the command
line as myprog monday tuesday wednesday thursday,
What would be the
output?
main(int argc, char
*argv[])
{
while(--argc
>0)
printf("%s",*++argv);
}
a) myprog monday tuesday
wednesday thursday
b) monday tuesday wednesday
thursday
c) myprog
tuesday
thursday
d) None of the above
13. In the following code, is p2 an
integer or an integer
pointer?
typedef int*
ptr
ptr p1,p2;
Ans. Integer pointer
14. Point out the
error in the following
program
main()
{
const int
x;
x=128;
printf("%d",x);
}
Ans. x should have been initialized where it is
declared.
15. What would be the output of the following
program?
main()
{
int
y=128;
const int
x=y;
printf("%d",x);
}
a)
128
b) Garbage
value
c)
Error
d) 0
16. What is the difference between the following
declarations?
const char
*s;
char const *s;
Ans. No difference
17. What is the
difference between the following
declarations?
const char *const
s; char const
*const s;
Ans. No difference
18. What would be
the output of the following
program?
main()
{
char near * near
*ptr1;
char near * far
*ptr2;
char near * huge
*ptr3;
printf("%d %d
%d",sizeof(ptr1),sizeof(ptr2),sizeof(ptr3));
}
a) 1 1
1
b) 1 2 4 c) 2 4
4
d) 4 4 4
19. If the following program (myprog) is run from the
command line as myprog friday tuesday
sunday,
What would be the
output?
main(int argc,
char*argv[])
{
printf("%c",**++argv);
}
a) m
b)
f
c)
myprog
d) friday
20. If the following program (myprog) is run from the command
line as myprog friday tuesday
sunday,
What would be the
output?
main(int argc, char
*argv[])
{
printf("%c",*++argv[1]);
}
a)
r
b)
f
c)
m
d) y
21. If the following program (myprog) is run from the command line
as myprog friday tuesday sunday,
What would be the
output?
main(int argc, char
*argv[])
{
while(sizeofargv)
printf("%s",argv[--sizeofargv]);
}
a) myprog friday tuesday
sunday
b) myprog friday tuesday
c) sunday tuesday friday
myprog
d) sunday tuesday friday
22. Point out the error in the
following
program
main()
{
int
a=10;
void
f();
a=f();
printf("\n%d",a);
}
void
f()
{
printf("\nHi");
}
Ans. The program is trying to collect the value of a
"void" function into an integer variable.
23. In the following
program how would you print 50 using
p?
main()
{
int a[]={10, 20, 30, 40,
50};
char
*p;
p= (char*)
a;
}
Ans. printf("\n%d",*((int*)p+4));
24.
Would the following program
compile?
main()
{
int
a=10,*j;
void *k;<
BR> j=k=&a;
j++;
k++;
printf("\n%u%u",j,k);
}
a)
Yes
b) No, the format is incorrect
c) No, the arithmetic operation is not permitted on void
pointers
d) No, the
arithmetic operation is not permitted on pointers
25. According to ANSI
specifications which is the correct way of declaring main() when it receives
command line arguments?
a) main(int argc, char
*argv[])
b) main(argc,argv) int argc; char
*argv[];
c) main()
{int argc; char *argv[];
}
d) None of the above
26. What error would the following function give on
compilation?
f(int a, int
b)
{
int
a;
a=20;
return
a;
}
a) missing parenthesis in the
return
statement
b) The function should be declared as int f(int a, int b)
c) redeclaration of
a
d) None of the above
27. Point out the error in the following
program
main()
{
const char
*fun();
*fun()='A';
}
const char
*fun()
{
return
"Hello";
}
Ans. fun() returns to a "const char" pointer which cannot
be modified
28. What would be the output of the following
program?
main()
{
const int
x=5;
int
*ptrx;
ptrx=&x;
*ptrx=10;
printf("%d",x);
}
a)
5
b)
10
c)
Error
d) Garbage value
29. A switch statement cannot
include
a) constants as
arguments
b) constant expression as arguments
c) string as an
argument
d) None of the above
30. How long the following program will
run?
main()
{
printf("\nSonata
Software");
main();
}
a) infinite loop
b) until the stack
overflows
c) All of the
above
d) None of the above
31. On combining the following statements, you will
get char*p;
p=malloc(100);
a) char *p=
malloc(100)
b) p= (char*)malloc(100)
c) All of
the
above
d) None of the above
32. What is the output of the following
program?
main()
{
int
n=5;
printf("\nn=%*d",n,n);
}
a)
n=5
b) n=5
c) n=
5
d) error